【前沿】FAIR何恺明等人与UC伯克利最新论文提出分割利器(Learning to Segment Every Thing)
点击上方“专知”关注获取专业AI知识!
【导读】Facebook FAIR实验室与UC伯克利大学合作提出《Learning to Segment Every Thing》在ICCV 2017 最佳论文 mask R-CNN的基础上引入weight transfer function应用在分割的任务中, 使得分割模型的训练不再仅仅局限于具有mask标注信息的类别,而是可以扩展至上千类。本文为后续分割算法的设计提供了一个崭新的思路。
▌作者
1. Ronghang Hu 胡戎航: 2015年清华大学本科毕业,伯克利大学博士在读,导师TrevorDarrell,本论文是其中Facebook实习期间的工作。
个人主页:http://ronghanghu.com/
2. Piotr Dollar: 2014年加入Facebook FAIR实验室,在这之前在微软总部工作。
个人主页:https://pdollar.github.io/
3. Kaiming He: 2007年清华大学毕业之后开始在微软亚洲研究院(MSRA)实习,2011年香港中文大学博士毕业后正式加入MSRA,目前在Facebook人工智能实验室(FAIR)实验室担任研究科学家。曾两次以第一作者身份摘得CVPR最佳论文奖(2009和2016),也是今年ICCV2017 最佳论文获得者。
个人主页:http://kaiminghe.com/
4. Trevor Darrell:UC伯克利大学教授,人工智能实验室BAIR主任。
个人主页:https://people.eecs.berkeley.edu/~trevor/
5. Ross Girshick (rbg): 在读博士的时候就因为dpm获得过pascal voc 的终身成就奖。同时也是RCNN,fast RCNN ,faster RCNN,YOLO一系列重要的目标检测算法的作者。现在就职于FAIR。
个人主页: http://www.rossgirshick.info/
论文:Learning to Segment Every Thing
▌摘要
现有的目标实例分割方法要求所有训练样本都具有分割mask标注。然而,标注新的类别是非常费劲的,因此这将实例分割模型的应用范围限制在100个左右的有标注的类。
本文的目的是提出一种新的部分监督的训练模型,以及一种新的权重传递函数,它使得实例分割模型可以在一组具有大量类别标注的数据中训练,但是其中只有一小部分具有mask标注信息。这些贡献使我们能够在Genome数据集和COCO数据集上训练Mask R-CNN进行检测和分割,其中Genome数据集包含3000个用框注释(box annotations)标注的视觉概念;COCO数据集包含用80个类别标注的mask注释(mask annotations)。我们在COCO数据集上利用对比实验细致地进行了方法评估。本文的工作是实例分割模型的第一步,对视觉世界有显著理解。
▌详细内容
目标检测器已经变得更加准确并获得了重要的新功能,其中最令人兴奋的是预测每个检测到对象的前景分割mask的能力,该任务称为实例分割(instance segmentation)。视觉世界有很多实例类别,实际上,典型的实例分割系统被限制在仅包括大约100个对象类别的狭窄范围内。
这种限制的一个主要原因是现有的实例分割算法需要很强的监督信息,并且想要获得新类别的强监督信息要付出昂贵的代价。相比之下,边界框注释更丰富,更易于标注。这个事实指出了一个问题:如果没有针对所有类别的完整的实例分割标注,是否有可能训练高质量的实例分割模型?基于这个动机,本文介绍了一个新的部分监督的实例分割任务(partially supervised instance segmentation),并提出了一种新的迁移学习(transfer learning)方法来解决它。
我们将部分监督的实例分割任务设定如下:(1)给定一组感兴趣的类别,只有一个小的子集具有实例mask标注,而其他类别只有边界框注释;(2)实例分割算法应该利用这些数据来拟合一个模型,该模型可以对感兴趣的数据的所有对象类别的实例进行分割。由于训练数据是强注释实例(带mask的实例)和更弱注释实例(仅带框的实例)的混合,因此我们将该任务称为部分监督。
所提出的部分监督模型的主要好处是它允许我们通过利用两种类型的现有数据集来建立一个大规模的实例分割模型:那些在大量类(例如Visual Genome)上使用边界框标注的数据集,以及在少量类(如COCO)上使用实例mask标注的数据集。正如我们将要展示的那样,这使我们能够将最先进的实例分割方法扩展到数千个类别,这对于将算法部署至现实世界中常重要。
为了解决部分监督实例分割问题,我们提出了一种基于Mask R-CNN的新型转移学习方法。MaskR-CNN非常适合我们的任务,因为它将实例分割问题分解为目标边界框检测和mask预测两个子任务。这些子任务是由专门的网络“heads”共同训练的。我们的方法的思路是:一旦训练,处理边界框的head网络的参数编码每个对象类别的特征,其能够使该类别的视觉信息迁移到处理部分监督mask信息的head网络。
我们通过设计参数化的权重传递函数来实现这个思路,该函数根据其边界框检测部分的网络参数来预测类别的实例分割网络参数,从而实现训练过程。权重传递函数可以在MaskR-CNN中使用带有mask注释的类作为监督信息来进行端到端的训练。在预测时,权重传递函数用于预测每个类别的实例分割参数,从而使模型能够分割所有对象类别,包括在训练时没有mask注释的对象类别。
我们在两种实验设置上评估我们的方法。 首先,我们使用COCO数据集来模拟部分监督的实例分割任务,以此作为在数据集上建立高质量注释和评估指标的定量分析的一种手段。具体地说,我们将整套COCO类别划分为两个子集,其中一个包含mask标注,另一个互补子集中模型只能访问边界框标注(bounding box annotations)。由于COCO数据集仅涉及少量(80)的易分离的类别,所以定量评估是精确和可靠的。实验结果表明,我们的方法超过baseline的结果,在没有训练掩码的情况下Mask AP相对提升了40%。
在第二种情况下,我们使用VisualGenome(VG)数据对3000个类别的大规模实例分割模型进行训练。VG包含大量实例类别的边界框注释,但是由于许多类别在语义上重叠(例如,近义词)并且标注不是穷尽的,这使得精确度和召回率难以度量,所以进行量化评估是具有挑战性的。而且,VG不是用实例mask来标注的。因此,我们使用VG来提供大规模实例分割模型的定性输出结果。
提出的模型输出结果如图1和图5所示。
图1:我们在部分监督下探索实例分割模型的训练:类的子集(绿色框)在训练期间具有实例mask标注;剩余的类(红色框)只有边界框标注。该图像展示了我们的模型的输出结果,我们的模型从Visual Genome训练了3000个类,但只使用了COCO中80个有mask标注的类。
图5:图中是我们的Mask R-CNN在Visual Genome的3000个类别中的mask预测实例。绿色框是与COCO重叠的80个类(具有mask训练数据设置为A组),而红色框是剩余的2920个不在COCO中的类(没有mask的训练数据设为B组)。可以看出,我们的模型在集合B中的许多类上生成了合理的mask。
▌模型简介
本文方法的核心是学习一个mask参数迁移函数T,其根据每个类的检测参数wdet预测其对应的分割参数wseg。给定一个类c,令wdet, c表示检测框head网络中类特异的物体检测参数,令wseg, c表示mask分支中类特异的mask参数。wseg, c通过一个参数迁移函数T进行建模:
wseg, c = T(wdet, c, Θ)
这里Θ是类特异的可学习参数。
本文提出的模型如图2所示:
图2. 本文提出的MaskX R-CNN 模型的细节。区别于直接学习mask预测函数的参数wseg,MaskXR-CNN采用了一个参数迁移函数T,其根据每个类的检测参数wdet预测其对应的分割参数wseg。在训练过程中,T只需要A集合中的mask标注信息,但是其可以在测试过程中应用到A U B的所有类别中。我们也通过了一个补充的全连接多层感知机(MLP)来增强mask head网络。
▌结论
本文针对大规模实例分割的问题,通过构造一个部分监督的学习模型,其中只有一部分类在训练期间具有实例mask,而其余的则只具有边界框框标注。我们提出了一种新的迁移学习方法,其中通过学习权重转移函数来预测如何根据学习的边界框的网络参数来分割每个类。
在COCO数据集上的实验结果表明,我们的方法大大提高了在没有mask训练数据的情况下进行mask预测的泛化能力。我们使用提出的方法,在Visual Genome数据集中建立了超过3000个类的大规模实例分割模型。定性的结果很好,指出了一个新的大规模实例分割的研究方向。实验还表示,如果没有强力的监督信息,将实例分割扩大到数千个类别,这是一个非常具有挑战性的问题,又很多方式对方法进行改进。
▌知乎讨论
知乎用户西北工业大学闫奕岐同学认为:He的论文中的idea一向都是简洁、直接。Mask-RCNN直接在Faster-RCNN上面加了一路。这一篇则是通过一个“weight transfer function”直接沟通了detection和segmentation这两路,很符合直观感受,效果也很好。
作者:点线面
链接:https://www.zhihu.com/question/263330313/answer/268065835
来源:知乎
著作权归作者所有。简单看过论文,来总结一发
感觉He的论文中的idea一向都是简洁、直接。Mask-RCNN直接在Faster-RCNN上面加了一路。这一篇则是通过一个“weight transfer function”直接沟通了detection和segmentation这两路,很符合直观感受,效果也很好。
以下记录下一些个人理解,如有不妥,欢迎纠正。
Mask-RCNN
Mask-RCNN可以分成三个部分(红框),每个部分各自是一个可训练的网络
backbone+PRN:直接提取整图特征,得到一个feature-map,然后将这个feature-map输入PRN,获得ROI
mask head:输入是某一个ROI,输出维度是WxHxC,其中C是类别数目。对每一种类别进行一个像素级的二分类。例如:取出输出中的[:, :, 0],这个feature-map是一个经过sigmoid以后的probability map,越接近于1的像素,越可能是属于标签为0的类别的掩码。自然,对应的ground-truth[:, :, 0]是一个二值图,标出了类别标签为0的instance。mask head的loss是binary cross entropy。
box head:生成detection bounding box的,有两个loss,第一个是multi-class cross entropy,分类误差;另一个是smoothed L1 loss,标定box的位置。
Weight transfer
这篇文章的核心应该就是引入迁移学习的思想:将box head的特征迁移到mask head中,这样对于缺乏mask ground-truth的类别,只要有box ground-truth,依然可以进行有效分割。
首先我们将两个head network再细分一下:对于每一个head,将除了最后一层以外的部分看成是提取feature,将最后一层的参数称作“category-specific parameters”。我们以box head为例,见下图:
红框框起来的就是真个box head,对于一个输入的ROI,首先通过一系列全连接层(FCs)提取feature,然后分两路分别进行分类和box regression,这两路都是一个线性映射,映射矩阵也就是“category-specific parameters”。
同样,在mask head中,最后一层卷积的输出应该是前面说的那个WxHxC的维度,这一层卷积的核也是“category-specific parameters”。
更多详见:https://www.zhihu.com/question/263330313/answer/268065835
了解更多:
论文地址:https://arxiv.org/pdf/1711.10370.pdf
知乎用户西北工业大学闫奕岐同学的回答(网名点线面):https://www.zhihu.com/question/263330313/answer/268065835
更多知乎讨论:https://www.zhihu.com/question/263330313
特别提示-Learning to Segment Every Thing论文下载:
请关注专知公众号(扫一扫最下面专知二维码,或者点击上方蓝色专知),
后台回复“LTSET” 就可以获取论文pdf下载链接~
-END-
专 · 知
人工智能领域主题知识资料查看获取:【专知荟萃】人工智能领域23个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
请关注我们的公众号,获取人工智能的专业知识。扫一扫关注我们的微信公众号。
点击“阅读原文”,使用专知!